//引入数据结构
const { paySetModel } = require(`../modules/paySetModel`);

//新增项目名称
async function addpaySet(req, res) {
    try {
        const data = req.body;

        // console.log(`前端返回的值------------`, data);
        await paySetModel.create(data);
        res.send({
            message: '新增成功',
            code: 200
        })
    } catch (error) {
        console.log(`新增失败--------------`, error);
        res.send({
            message: '新增失败',
            code: 500
        })
    }
}

// 得到项目标准
async function getpaySet(req, res) {
    try {
        const { nowPage, pageSize, value, cmd } = req.body;
        // console.log(`前端返回的val=============`, value);
        const total = await paySetModel.countDocuments({
            $or: [
                {
                    projectName: {
                        $regex: value,
                        $options: `$i`
                    }
                },
                {
                    payClassName: {
                        $regex: value,
                        $options: `$i`
                    }
                },
                {
                    paySetName: {
                        $regex: value,
                        $options: `$i`
                    }
                }
            ]
        }); //得出总的条数
        const pages = Math.ceil(total / pageSize);  //总共的页数是 总的数据条数/一页展示多少条  然后向上取整 多的显示一页
        if (cmd) {
            const data = await paySetModel
                .find()
                .populate("communtiyId");
            res.send({
                total,
                pages,
                data,
                message: '获取到所有的数据',
                code: 200
            })
        } else {
            const total = await paySetModel.countDocuments({
                $or: [
                    {
                        projectName: {
                            $regex: value,
                            $options: `$i`
                        }
                    },
                    {
                        payClassName: {
                            $regex: value,
                            $options: `$i`
                        }
                    },
                    {
                        paySetName: {
                            $regex: value,
                            $options: `$i`
                        }
                    }
                ]
            }); //得出总的条数

            // console.log(`获取收费项目的总条数-----------------------`, total);
            if (total) {
                const pages = Math.ceil(total / pageSize);  //总共的页数是 总的数据条数/一页展示多少条  然后向上取整 多的显示一页
                const data = await paySetModel
                    .find(
                        {
                            $or: [
                                {
                                    projectName: {
                                        $regex: value,
                                        $options: `$i`
                                    }
                                },
                                {
                                    payClassName: {
                                        $regex: value,
                                        $options: `$i`
                                    }
                                },
                                {
                                    paySetName: {
                                        $regex: value,
                                        $options: `$i`
                                    }
                                }
                            ]

                        })//查询符合条件的所有数据
                    .populate("communtiyId")
                    .limit(pageSize * 1) //只请求一页需要展示的数据
                    .skip((nowPage * 1 - 1) * pageSize); //需要跳过的数据 在第一页的时候 跳过0条 第二页的时候 跳过第一页所需要的数据
                // console.log(`所有的项目名称-------------------`, data);
                res.send({
                    pages,
                    total,
                    data,
                    message: '获取到所有项目类别数据',
                    code: 200
                })
            } else {
                res.send({
                    message: '数据库暂无查询相关值请先新增',
                    code: 500
                })
            }
        }

    } catch (error) {
        console.log(`新增失败--------------`, error);
        res.send({
            message: '新增失败',
            code: 500
        })
    }
}

//删除
async function delpaySet(req, res) {
    try {
        const data = req.body;
        // console.log(`前端返回的val=============`, value);

        await paySetModel.deleteOne(data);
        const total = await paySetModel.countDocuments();
        res.send({
            total,
            message: '删除成功',
            code: 200
        })



    } catch (error) {
        console.log(`报错了------------------------`, error);
        res.send({
            message: '后端报错了',
            code: 500
        })
    }
}




module.exports = {
    addpaySet, getpaySet, delpaySet
}